package services

import (
	_ "github.com/gin-gonic/gin"
	"local/databases/mysql"
	"local/databases/redis"
	"local/models"
	"local/utils"
)

func Login(username string, password string) (string, bool) {

	var ok bool

	/*
	   登录处理
	*/

	//登陆成功
	if ok {
		//将token插入redis
		token := utils.CreateToken(username)
		redis.SetValueByKey(username, token)
		return token, true

	} else {
		return "", false
	}
}

//根据id查询用户信息
func SelectUserByIdService(id int64) (models.User, error) {

	//返回数据
	var res models.User

	//查询
	err := mysql.Db().Where("id=?", id).Find(&res).Error
	//报错
	if err != nil {
		panic(err)
		return res, nil
	}
	//正常：返回数据
	return res, nil
}

//根据id更新用户信息
func UpdateUserByIdService(id int64, name string, status int64) (int64, error) {

	var (
		res        int64 //返回数据
		updateTime string
	)

	updateTime = utils.GetLocalDateTime()

	//匹配字段
	user := models.User{
		Id: id,
	}
	//更新
	err := mysql.Db().Model(&user).Update(models.User{Name: name, UpdateTime: updateTime, Status: status}).Error
	//报错
	if err != nil {
		panic(err)
		return res, err
	}
	//正常：返回数据
	return res, nil
}

//根据id删除用户
func DeleteUserByIdService(id int64) (int64, error) {

	//返回数据
	var res int64

	//匹配字段
	user := models.User{}
	//删除
	err := mysql.Db().Where("id=?", id).Delete(&user).Error
	//报错
	if err != nil {
		panic(err)
		return res, err
	}
	//正常：返回数据
	return res, nil
}

//插入用户
func InsertUserService(name string) (int64, error) {

	var (
		res        int64 //返回数据
		thisTime   string
		createTime string
		updateTime string
	)

	thisTime = utils.GetLocalDateTime()

	createTime = thisTime
	updateTime = thisTime

	//生成要插入的用户对象
	user := models.User{
		Name:       name,
		CreateTime: createTime,
		UpdateTime: updateTime,
		Status:     1,
	}
	//插入
	err := mysql.Db().Create(&user).Error
	//报错
	if err != nil {
		panic(err)
		return res, err
	}
	//正常：返回数据
	return res, nil
}
